import type { ToolInstallVersionItem } from "./types.ts";
import path from "@/framework/util/path.ts";

import { EnvTree } from "@/modules/dev-env/common/tree.ts";

/**
 * 将解压的临时目录中的第一个文件夹移动到安装版本目录
 * @param tempDir 解压临时目录
 * @param rootDir 安装版本根目录
 * @param version 安装版本信息
 * @returns versionDir 安装版本目录
 */
export async function moveTempDir0ToVersionDir(tempDir: string, rootDir: string, version: ToolInstallVersionItem): Promise<string> {
  const versionDir = path.join(rootDir, EnvTree.versionsDir, version.installPath);
  const dirs = await native.fs.readdir(tempDir);
  // 解压目录的第一个文件夹为MongoDB程序根目录
  const tempVersionDir = dirs[0];

  await native.fs.mkdir(path.dirname(versionDir), { recursive: true });
  // 移动到目标目录
  await native.fs.rename(tempVersionDir, versionDir);
  // // 删除临时文件夹
  await native.fs.rm(tempDir, { recursive: true, force: true });

  return versionDir;
}
